Communication methods and technologies used over data-packet-networks have continually undergone evolution with the advent of new protocols, markup languages, and compression technologies. The well-known Internet network represents the most extensive and commonly used data-packet-network for communications. Network-based communications applications are available, which enable people and corporations to subscribe to and report presence information and subscribed information in near real time.
More recently, popular handheld, Internet-capable, devices such as the Palm™, Bluetooth™, and Internet-capable cellular telephones have been utilized as client devices capable of subscribing to and posting information wirelessly in interaction with service equipment and Web-based software applications hosted on the Internet by various service providers.
At the time of the writing of this application, there is no practical method for mobilizing web applications and enterprise data for use on handheld devices in an integrated fashion. One reason for this is proprietary considerations in software development and complexities of attempting to integrate various markup languages and proprietary Web-based service models.
One attempted solution for providing viable Web-integration of applications for Web-enabled devices of disparate platforms and capabilities is the use of a proxy server. A proxy server is a server application that resides between a client applications and a real server. The generic function of the proxy is to intercept all requests from a client to a real server and attempt to fill the requests without the help of the real server. If the proxy cannot fill a request, it will forward the request on to the real server. The way proxy servers are used in messaging and presence service architecture is to retrieve content from, for example, the Internet on behalf of a client per client request. The proxy receiving the requested data then attempts to parse out specific portions of the content (content filtering) that are not compatible with a particular user's access device display requirements, which must be known to the proxy. After filtering the data, the re-purposed content from the Internet is delivered to the client's mobile device.
One drawback to the proxy method is that processing data for display on disparate user devices requires considerable processing power within the proxy server. Another obvious drawback to the proxy method is that the proxy requires a set of defined rules for filtering data for a particular type device. Often the rules for parsing data are rather loose resulting in re-purposed data that is generally unappealing in format and presentation attributes due to lack of customization options for data presentation. If strict rules are provided to the proxy, a substantial amount of time is required to define them from the developer's point of view.
One other way to provide universal integration of applications for custom presentation to mobile devices is to use Extensible Markup Language (XML) in conjunction with an XML transforming language known in the art as Extensible Stylesheet Language Transformations (XSLT), which is a transformation vocabulary used to specify how to create new structured information from existing XML documents. XML content is transformed for use on a particular device through the application of customized style sheets (CSS), and delivered to users.
Yet another approach to presenting appealing customized information is the creation of content specifically for a target device. The well-known Palm Query Application (PQA) format is one example of this approach. Variants of these formats exist. A drawback with PQA is that it only supports Palm devices and is fairly generic with respect to multiple versions of the device. Complex definition of strict parsing rules applies to the XML/XSLT and the PQA techniques as well as the proxy technique described above. Moreover, it is noted that in all of these approaches, server-side processing is considerable.
The problems with content presentation to mobile devices exist principally because there is no common and standard set of rules for building Web-applications that run on small wireless devices. Furthermore, prior-art solutions focus on sever-side capability and provide no programmability on the client side of interaction.
Therefore, what is clearly needed is a method and apparatus for building customized Web-applications that are usable at the client-side of an information and presence subscription service and delivery system wherein processing requirements can be distributed among clients. A system such as this would ensure that requested content is optimally presented to mobile devices regardless of device type while reducing server-side processing requirements.